#pragma once
#include "Dream/Core/Core.h"
#include "Dream/Scene/Entity.h"

namespace Dream
{
	class DM_API ScriptableEntity
	{
	public:
		virtual ~ScriptableEntity() {}

		template<typename T>
		T& GetComponent()
		{
			return m_Entity.GetComponent<T>();
		}
	protected:
		virtual void OnCreate() {}
		virtual void OnDestroy() {}
		virtual void OnUpdate(Timestep ts) {}
	private:
		Entity m_Entity;

		friend class Scene;
		friend class SceneHierarchyPanel;
	};
}

